The invention relates to booting an operating system.
Operating systems have continually evolved. For example, older computer systems (8086, 8088 or 80286 processor-based computer systems, as examples) use sixteen bit real mode operating systems, such as MS-DOS operating systems. However, these operating systems lack multi-tasking and memory management features provided by more recent thirty-two bit virtual mode operating systems (a Windows.RTM. 98 operating system, for example) that do not primarily execute programs in a real mode of a processor of the computer system.
Because some real mode programs (MS-DOS-based programs, for example) still require execution in the real mode, virtual mode operating systems may feature a virtual, real mode (a virtual 8086 mode, for example) in which a real mode operating system may cooperate with the thirty-two bit operating system to implement a real mode shell, such as an MS-DOS.RTM. shell. As an example, the virtual mode operating system may create a virtual DOS window to execute a real mode program and may multitask execution of this real mode program with other virtual mode programs.
For purposes of allowing the virtual and real mode operating systems to cooperate with each other, the computer system may initialize both operating systems when the computer system "boots up," such as when the computer system powers up or comes out of a hard reset. In this manner, at bootup, a basic input/output system (BIOS) may cause the computer system to copy a real mode operating system loader program (part of the real mode operating system) into a memory of the system. The BIOS may then cause the computer system to execute the loader program that, in turn, causes the computer system to load portions of the real mode operating system into the memory. Subsequently, the real mode operating system may execute one or more program(s) to initialize and start execution of the virtual mode operating system.
As operating systems continue to evolve, some of the backward compatibility with real mode operation may be lost. For example, it is quite possible that virtual operating systems in the future may not support booting up an auxiliary real mode operating system. In this manner, the operating system may include a loader program that loads only the virtual mode operating system and not the real mode operating system. More particularly, the BIOS may be designed to cause the computer system to search for and copy a virtual mode loader program into a memory of the computer system. This loader program, in turn, may cause the system to load only the virtual mode operating system. As a result, without the co-existence of the real mode operating system, real mode programs may not be supported.
Thus, there exists a continuing need for a mechanism to use a real mode operating system in conjunction with a virtual mode operating system when the BIOS does not support booting up the real mode operating system.